package com.zb.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zb.entity.ZjWorkSlaCondition;
import com.zb.extend.WorkSlaConditionExtend;
import com.zb.vo.WorkSlaConditionVo;

import java.util.List;

/**
 * <p>
 * 工单SLA触发条件表 服务类
 * </p>
 *
 * @author WEN
 * @since 2024-02-04
 */
public interface ZjWorkSlaConditionService extends IService<ZjWorkSlaCondition> {

    /**
     * 保存或更新触发条件
     * @param custAccId 商家ID
     * @param workSlaId 工单策略SLA ID
     * @param slaConditionVos
     */
    void save(Long custAccId, Long workSlaId, List<WorkSlaConditionVo> slaConditionVos);

    /**
     * 根据工单策略SLA ID获取触发条件
     * @param workSlaIds 工单策略SLA ID
     * @return
     */
    List<ZjWorkSlaCondition> getByWorkSlaIds(List<Long> workSlaIds);

    /**
     * 根据工单策略SLA ID获取触发条件
     * @param workSlaId 工单策略SLA ID
     * @return
     */
    List<ZjWorkSlaCondition> getByWorkSlaId(Long workSlaId);

    /**
     * 根据工单策略SLA ID获取触发条件
     * @param workSlaId 工单策略SLA ID
     * @return
     */
    List<WorkSlaConditionVo> getSlaConditionVosByWorkSlaId(Long workSlaId);

    /**
     * 根据工单策略SLA ID删除触发条件
     * @param workSlaIds 工单策略SLA ID
     */
    void deleteByWorkSlaIds(List<Long> workSlaIds);

    /**
     * 根据工单模块ID获取工单策略SLA
     * @param moduleIds 工单模块ID
     * @return
     */
    List<WorkSlaConditionExtend> getByModuleIds(List<Long> moduleIds);
}
